GtkType and macro fixups. widget argument implementation:
authorTim Janik <timj@gtk.org>
Mon, 29 Jun 1998 11:41:46 +0000 (11:41 +0000)
committerTim Janik <timj@src.gnome.org>
Mon, 29 Jun 1998 11:41:46 +0000 (11:41 +0000)
Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkarrow.h: GtkType and macro fixups.
        * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
        "GtkArrow::shadow_type".

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkarrow.c
gtk/gtkarrow.h

index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index a6ceff30155d775e61c4cc2400fe4e2a1fe2af5b..00a9e911f35566eb4d932b4abaf3dbc77faa34df 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkarrow.h: GtkType and macro fixups.
+       * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
+       "GtkArrow::shadow_type".
+
 Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkalignment.h:
index 1e07ac270a0ea21c614eb4726fc572c67f5dd538..54b543bc0b8fa42e140a2247b0f90232d411e3cb 100644 (file)
 
 #define MIN_ARROW_SIZE  11
 
+enum {
+  ARG_0,
+  ARG_ARROW_TYPE,
+  ARG_SHADOW_TYPE
+};
+
 
 static void gtk_arrow_class_init (GtkArrowClass  *klass);
 static void gtk_arrow_init       (GtkArrow       *arrow);
 static gint gtk_arrow_expose     (GtkWidget      *widget,
                                  GdkEventExpose *event);
+static void gtk_arrow_set_arg    (GtkObject      *object,
+                                 GtkArg         *arg,
+                                 guint           arg_id);
+static void gtk_arrow_get_arg    (GtkObject      *object,
+                                 GtkArg         *arg,
+                                 guint           arg_id);
 
 
-guint
+GtkType
 gtk_arrow_get_type (void)
 {
-  static guint arrow_type = 0;
+  static GtkType arrow_type = 0;
 
   if (!arrow_type)
     {
@@ -47,7 +59,7 @@ gtk_arrow_get_type (void)
         (GtkClassInitFunc) NULL,
       };
 
-      arrow_type = gtk_type_unique (gtk_misc_get_type (), &arrow_info);
+      arrow_type = gtk_type_unique (GTK_TYPE_MISC, &arrow_info);
     }
 
   return arrow_type;
@@ -56,13 +68,69 @@ gtk_arrow_get_type (void)
 static void
 gtk_arrow_class_init (GtkArrowClass *class)
 {
+  GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
 
+  object_class = (GtkObjectClass*) class;
   widget_class = (GtkWidgetClass*) class;
 
+  gtk_object_add_arg_type ("GtkArrow::arrow_type", GTK_TYPE_ARROW_TYPE, GTK_ARG_READWRITE, ARG_ARROW_TYPE);
+  gtk_object_add_arg_type ("GtkArrow::shadow_type", GTK_TYPE_SHADOW_TYPE, GTK_ARG_READWRITE, ARG_SHADOW_TYPE);
+
+  object_class->set_arg = gtk_arrow_set_arg;
+  object_class->get_arg = gtk_arrow_get_arg;
+
   widget_class->expose_event = gtk_arrow_expose;
 }
 
+static void
+gtk_arrow_set_arg (GtkObject      *object,
+                  GtkArg         *arg,
+                  guint           arg_id)
+{
+  GtkArrow *arrow;
+
+  arrow = GTK_ARROW (object);
+
+  switch (arg_id)
+    {
+    case ARG_ARROW_TYPE:
+      gtk_arrow_set (arrow,
+                    GTK_VALUE_ENUM (*arg),
+                    arrow->shadow_type);
+      break;
+    case ARG_SHADOW_TYPE:
+      gtk_arrow_set (arrow,
+                    arrow->arrow_type,
+                    GTK_VALUE_ENUM (*arg));
+      break;
+    default:
+      break;
+    }
+}
+
+static void
+gtk_arrow_get_arg (GtkObject      *object,
+                  GtkArg         *arg,
+                  guint           arg_id)
+{
+  GtkArrow *arrow;
+
+  arrow = GTK_ARROW (object);
+  switch (arg_id)
+    {
+    case ARG_ARROW_TYPE:
+      GTK_VALUE_ENUM (*arg) = arrow->arrow_type;
+      break;
+    case ARG_SHADOW_TYPE:
+      GTK_VALUE_ENUM (*arg) = arrow->shadow_type;
+      break;
+    default:
+      arg->type = GTK_TYPE_INVALID;
+      break;
+    }
+}
+
 static void
 gtk_arrow_init (GtkArrow *arrow)
 {
index e0ce41ad70119a60166b9b891cedfec8eff092f5..bc495cc9769b1173483db0a2a70632652f2c3fc0 100644 (file)
@@ -29,9 +29,11 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-#define GTK_ARROW(obj)          GTK_CHECK_CAST (obj, gtk_arrow_get_type (), GtkArrow)
-#define GTK_ARROW_CLASS(klass)  GTK_CHECK_CLASS_CAST (klass, gtk_arrow_get_type (), GtkArrowClass)
-#define GTK_IS_ARROW(obj)       GTK_CHECK_TYPE (obj, gtk_arrow_get_type ())
+#define GTK_TYPE_ARROW                  (gtk_arrow_get_type ())
+#define GTK_ARROW(obj)                  (GTK_CHECK_CAST ((obj), GTK_TYPE_ARROW, GtkArrow))
+#define GTK_ARROW_CLASS(klass)          (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_ARROW, GtkArrowClass))
+#define GTK_IS_ARROW(obj)               (GTK_CHECK_TYPE ((obj), GTK_TYPE_ARROW))
+#define GTK_IS_ARROW_CLASS(klass)       (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ARROW))
 
 
 typedef struct _GtkArrow       GtkArrow;
@@ -51,7 +53,7 @@ struct _GtkArrowClass
 };
 
 
-guint      gtk_arrow_get_type   (void);
+GtkType    gtk_arrow_get_type   (void);
 GtkWidget* gtk_arrow_new        (GtkArrowType   arrow_type,
                                 GtkShadowType  shadow_type);
 void       gtk_arrow_set        (GtkArrow      *arrow,